#pragma once
#include "Meeting.h"
#include <vector>
#include <string>

using namespace std;

const Type_Code EXTENDED = 1;

class E_Meeting: public Meeting{
public:
	E_Meeting(void);
	virtual ~E_Meeting(void);
	E_Meeting(float start, float end, const string& subject);
	E_Meeting(const E_Meeting &meeting);
	const E_Meeting& operator =(const E_Meeting &meeting);

	// returns a constant int that represents the type
	virtual Type_Code whoAmI() const;

	// return the list of people
	const vector<string>& getPeopleList() const;

	// check if the a person is in a meeting
	bool checkPerson(const string& name) const;

	// add a person to the meeting
	bool addPerson(const string& name);

	// remove a person from meeting
	bool removePerson(const string& name);

	virtual bool checkColission(const Meeting& meeting) const;

	virtual ostream & toString(ostream & os) const;

	bool compare(const Meeting & meeting) const;

protected:
	// we want allow people to handle this directly on inheritence
	vector<string> peopleList;
};

